<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
				运算符又叫做操作符
					通过运算符可以对一个或者多个值进行运算，并获取结果
					比如 typeof就是运算符，可以来获得一个值的类型
					它会将改值的类型以字符串的形式返回
				算数运算符
					当对于非Numeber的类型的值进行运算时，会将这些值转换为Number然后在运算
					任何数和NaN做运算时的结果都是NaN
					+	
						+ 可以对两个值进行加法运算，并将结果返回
						当字符串进行相加时，则会进行拼接操作
						比如 a = "123"+"456" 则结果为"123456"
						     a = "你好"+"帅哥"则结果为“你好帅哥”
						任何和字符串进行相加的时候都会先变成字符串然后在进行拼接
						比如 a = 1 + "123" 结果为"1123"
					-
						- 可以对两个值进行减法运算
					*	
						* 可以对两个值进行乘法操作
					/
						/ 可以对两个值进行除法操作
						任何值做 - *  / 操作都会转换为Number
						可以做隐式类型转换，原理时Number（）相同
					%
						% 取模运算（取余操作）
				一元运算符
					+ 正号
						+ 不会对数字产生印象
					— 负号
						- 会对数字取反
					对于非Number值会先将其转化为Number
					可以对其他的类型使用一个+将其转化为Number
				逻辑运算符
					！ 非
						- ！可以对一个值进行非运算
						- 所谓非运算就是对一个布尔值进行取反操作
							true变false 或者false变true
						- 如果对非布尔值运算会将其先变布尔值然后在进行运算
						- 可以用该运算把其他的数据类型改为布尔值
						比如 ： var a = 123； a = ！！a；
					&& 与
						- && 可以对符号两侧的值进行与运算并且返回结果
						- 运算规则 只要有一个false就会返回为false
							只有两个值都为true时才会返回true
						- JS中的“与”属于短路的与，当第一个值为false时不会检查后面的值
						- 对于非布尔值进行运算时，会先将其转化成布尔值然后在进行运算，但是返回值为原值
						- 与运算两个值都为true时返回值为后面
						— 与运算两个值都为false时返回考前的值
					|| 或
						- || 或运算可以对符号两侧的值进行或运算并且返回结果
						- 运算规则 只要有一个true就返回true
							只有两个值都为false时才会返回false
						- JS中的“或”属于短路的或，当第一个值为tuer时不会检查后面的值
						- 对于非布尔值进行运算时，运算的原理与“与”运算相同
				赋值运算
					= 
						- 可以将符号右侧的值赋值给左侧的变量
					+= 
						- 可以将右侧的值加上原值赋值给左侧
						比如 a += 5 结果为a = 15
					-= 
						- 与+=相同
					*= /= %= 原理相同
				关系运算符
					> 大于号
						-判断符号左侧的值是否大于右侧的值
						-如果关系成立，返回true，如果关系不成立返回值为fals
					>= 大于等于
						 -方法与 > 使用方法相同和数学一样
					< <= 小于号
						- 方法与 > 使用方法相同
					非数值的情况
					对于非数值进行比较是时会先将其转化为数字然后在进行判断
					任何值与NaN进行比较都是false
					如果符号两侧的值都是字符串时会分别比较字符的编码（比较字符编码时是一位一位比较，如果两位一样则会比较第二位）
					如果是比较两个字符串型的数字一定要转型（可能会出问题）
				相等运算符
					== 我们使用 == 来做相等运算
						相等会返回true不相等返回false
						如果类型不同将自动进行类型转换然后进行比较（大部分情况都会转化为数字）
						特殊情况undefined == null 返回值true
						NaN不和任何值相等，包括他本身，可以通过isNaN（）来判断一个值是否为NaN，如果是的话返回值为true
					！= 
						- 不相等运算用法与==一样结果相反
					===
						- 用来判断是否全等，他不会做类型转换，可以用来判断是否类型相同，用法与相等相同
					！==
						- 不全等，和全等意思一样
				条件运算符
					也叫做三元运算符
						？：
						语法：
							条件表达式？语句1：语句2
						执行流程：
							条件表达式执行时先对条件表达式进行求职
								如果该值为true，则执行语句1，并返回执行结果
								如果该值为flase，则执行语句2，并返回执行结果
						例子：
						var a = 10;
						var b = 20;
						a > b ? alert("a大"):alert("b大")
						var max = a > b ? a : b;(可以区最大值)
				 运算符优先级
					优先级表
					（）
					++、--
					！
					%、*、/
					+、-
					<<、>>
					==、!==、===
					&
					|
					&&
					||
					？
					=、+=、-=
					常用越往上优先级越高
			*/
		</script>
	</head>
	<body>
	</body>
</html>
